/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Persistencia;

/**
 *
 * @author beatriz
 */
import java.sql.*;
import Dominio.Vertice;

public class DAOCoordenadas {

    private Agente Broker;
    private Connection conexion;

    /*Se inicializa Coordenadas y se crea una conexión */
    public DAOCoordenadas() throws SQLException {
        Broker = Agente.getAgente();
        conexion = Broker.getConnection();
    }

    public int insert(Vertice v) throws SQLException {
        int resultado = 0;
        PreparedStatement s;

        s = conexion.prepareStatement("INSERT INTO Coordenadas (idNodo, latitud, longitud) VALUES (?, ?, ?)");
        s.setString(1, v.getIdNodo().toString());
        s.setString(2, v.getLatitud().toString());
        s.setString(3, v.getLongitud().toString());
        resultado = s.executeUpdate();
        s.close();

        return resultado;
    }

    public Vertice select(String arg, String condicion) {
//        LinkedList<Vertice> vertices = new LinkedList<Vertice>();
        Vertice vertice = null;
        Statement s;
        ResultSet resultado = null;

        Integer idNodo;
        Float latitud, longitud;

        try {
            /* Ejecutamos la consulta y almacenamos el resultado */
            s = conexion.createStatement();
            if (arg.equals("*")) {
                if (condicion.equals("*")) {
//                    System.out.println("SELECT " + arg + " FROM Coordenadas");
                    resultado = s.executeQuery("SELECT " + arg + " FROM Coordenadas");
                } else {
//                    System.out.println("SELECT " + arg + " FROM Coordenadas WHERE " + condicion);
                    resultado = s.executeQuery("SELECT " + arg + " FROM Coordenadas WHERE " + condicion);
                }
                while (resultado.next()) {
                    idNodo = resultado.getInt("idNodo");
                    latitud = resultado.getFloat("latitud");
                    longitud = resultado.getFloat("longitud");
                    vertice = new Vertice(idNodo, latitud, longitud);
//                    vertices.add(vertice);
                }
            }
//            } else {
//                System.out.println("SELECT " + arg + "FROM Coordenadas ");
//
//                resultado = s.executeQuery("SELECT " + arg + "FROM Coordenadas ");
//                Arco arco = new Arco(-1,-1,resultado.getInt(arg),-1,-1,"");
//            }
//            /*Procesamos el resultado para devolver una lista de arcos*/

            resultado.close();
            s.close();

        } catch (SQLException e) {
            System.out.println(e.toString());
        }
        return vertice;
    }

    public void cerrarDAO() throws SQLException {
        conexion.close();
    }
}
